iT邦幫忙

2026 iThome 鐵人賽

DAY 26
0
佛心分享-IT 人自學之術

當 Python 初學者遇到 AI:30 天人機協作學習手記系列 第 26 篇

[Day 26] 自動化微專案實戰 (三):讓程式自己動起來!使用 schedule 套件打造定時排程

  • 分享至 

  • xImage
  •  

今日對話:如何讓 Python 每天定時工作?

我的 Prompt(提示詞):

「我寫好了一支爬蟲程式,但我不想每天早上手動點擊執行。請教我如何用最簡單的方式,讓這支 Python 程式『每天早上 8 點自動執行一次』?請用適合新手的套件教學,並解釋程式碼的邏輯。」

AI 導師的建議與拆解

AI 導師告訴我,要讓程式自動排程,通常有兩種作法:

  1. 作業系統層級:用 Windows 的「工作排程器」或 Mac/Linux 的 cron。(功能強大但設定有點複雜)
  2. Python 套件層級:使用 Python 內建的 time 或第三方套件 schedule。(極度直覺,最適合新手!)

AI 推薦了 schedule 這個套件。它的語法設計得就像英文句子一樣,超級好懂!
只需要打開終端機,輸入 pip install schedule 即可安裝。

實作的核心概念:

  1. 打包任務:把我們昨天寫的爬蟲邏輯,包裝成一個「函數 (Function)」。
  2. 設定鬧鐘:用 schedule 規定這個函數什麼時候要啟動。
  3. 保持清醒:用一個無窮迴圈 (while True) 讓程式永遠保持開啟狀態,並不斷檢查「時間到了沒?」。

實作筆記與驗證

我在 VS Code 建立了 day26.py檔案。為了方便測試,我們先把昨天的龐大爬蟲濃縮成一段簡單的文字,重點放在「排程」的運作機制:

python
import schedule
import time
import datetime

#1. 將你要做的事情包裝成一個「任務函數」 (def)
def daily_crawler():
# 這裡可以放昨天寫的 request + BeautifulSoup + Pandas 程式碼
now = datetime.datetime.now().strftime("%H:%M:%S")
print(f"[{now}] 🤖 嗶嗶!開始執行每日爬蟲任務...")
print("✅ 已經成功抓取今日新聞並存成 CSV!")
print("-" * 40)

#2. 設定排程
#目標:每天早上 8 點執行一次
schedule.every().day.at("08:00").do(daily_crawler)

#測試小秘訣:在開發時,我們不可能傻傻等到明天早上 8 點才驗證有沒有寫錯。
#所以先把它註解掉,改成「每 5 秒鐘執行一次」來測試!
schedule.every(5).seconds.do(daily_crawler)

print("⏰ 系統已啟動!等待任務觸發中...")
print("💡 提示:按 [Ctrl + C] 可以強制停止程式。")
print("-" * 40)

#3. 讓程式保持清醒的無限迴圈
while True:
schedule.run_pending() # 檢查有沒有已經到期的任務需要執行
time.sleep(1) # 讓程式休息 1 秒鐘,避免過度消耗電腦 CPU 資源

今日小結

今天補齊了自動化的關鍵拼圖排程。


上一篇
[Day 25] 自動化微專案實戰 (二):結合 BeautifulSoup 與 Pandas,打造每日新聞頭條整理器
下一篇
[Day 27] 自動化微專案實戰 (四):讓程式主動聯絡你!結合 LINE Notify 把每日新聞直接傳到手機
系列文
當 Python 初學者遇到 AI:30 天人機協作學習手記 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言